#include <iostream>

using std::cout;
using std::endl;

//引用计数需要存放在内存的哪里？
//1、栈,error
//2、堆,ok,将其与数据放在一起，并且最好可以放在数据的前面，
//以便于更好的获取该引用计数
//3、全局（静态）,error
//4、文字常量区,error
//5、程序代码区,error
class String
{
public:
    String();
    String(const char *pstr);
    String(const String &rhs)
    : _pstr(rhs._pstr)
    /* , _cnt(rhs._cnt)//error */
    {
        /* ++rhs._cnt;//error */
        _cnt++;
    }
private:
    char *_pstr;
    static int _cnt;
};

int main(int argc, char **argv)
{
    String s1("hello");
    String s2 = s1;

    String s3("world");
    return 0;
}

